import uvicorn
from fastapi import FastAPI
from router import RegisterRouterList
from fastapi.middleware.cors import CORSMiddleware

# 实例化
app = FastAPI()

# 设置 CORS 中间件
origins = [
    "http://localhost:3000",  # 允许的源
]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,  # 允许的源
    allow_credentials=True,
    allow_methods=["*"],  # 允许的 HTTP 方法
    allow_headers=["*"],  # 允许的请求头
)

# 加载路由
for item in RegisterRouterList:
    app.include_router(item.router)

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=3261)

# 本地调试时在命令行输入一下命令开始调试后端代码（reload）
# uvicorn main:app --host 0.0.0.0 --port 3261 --reload
# 参数：
# --reload 作用是实时更新，有内容修改自动重启服务器
# --reload-dir ：设置重载目录，默认为当前工作目录

# 优点：在开发阶段调试的时候不需要重启服务
# 缺点： 频繁重启对资源消耗会有一定影响 可能导致一些资源没有正常释放等问题
# 建议：只在开发阶段添加此参数，实际生产过程不要用

# api文档
# http://localhost:3261/redoc
# http://localhost:3261/docs
